/*
 * @Author: your name
 * @Date: 2021-09-07 19:29:03
 * @LastEditTime: 2021-09-07 19:33:51
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \briup\Web课后练习成果\ES5\9.7.js
 */
function foo() {
    if (true) {
        var a = 3;
        console.log("inner", a); //inner 3
    }
    console.log("outer", a); //inner 3  //没有块级作用域
}
foo();
console.log(a); //error!  函数作用域：局部作用域
//如果在函数中定义变量没有加var，该变量为全局变量
function test() {
    message = "hello";
}
test();
// alert(message); //可以访问
//用var操作符定义的变量将成为定义该变量的作用域中的局部变量,例如：文件内的全作用域
// 分析
var a = 1;

function b() {
    a = 10;
    return;
}
b();
console.log(a); //10
//系统的全局作用域
// 分析
x = 1; //window.x  global.x
console.log(x); //1
function y() {
    console.log(x); //undefined
    console.log(this.x); //1
    　　
    var x = 2;
    console.log(x); //2
}
y();
console.log(x); //1
//函数作用域：局部作用域
// 分析 
var a = 1;

function b() {
    a = 10;
    return;
    //a函数声明，提前变量a，将a认为是函数b作用域的变量，具有局部效果
    function a() {}
}
b();
console.log(a); //1